﻿#include "array_test.h"

#define main testmain_array_test

float a[][2]={{0.1f,0.2f},{0.3f,0.4f},{0.5f,0.6f},{0.7f,0.8f}};//浮点常量初始是double型的, 需要指定为float的才可以.

int main(int argc, char* argv[])
{
	//float b=a;///@alex:注意，这边必须要做强制类型转换才可以
	float* b=(float*)a;///@alex:注意，这边很容易忘记b是一个指针
	for(unsigned int i=0; i<sizeof(a)/sizeof(float); i++)
		std::cout<<*b++<<std::endl;

	b=(float*)a;
	for(unsigned int i=0; i<sizeof(a)/sizeof(float); i++)
		std::cout<<b[i]<<std::endl;

	for(unsigned int i=0; i<4; i++)
		for(unsigned int j=0; j<2; j++)
			std::cout<<a[i][j]<<std::endl;

	//for(unsigned int i=0; i<4; i++)
	//	for(unsigned int j=0; j<2; j++)
	//		std::cout<<b[i][j]<<std::endl;///@alex:注意，这边对于b进行[][]访问是不符合类型定义的

	//float (*bb)[4][2];
	//bb=&a;///@alex:注意了，按照经验来说，不要用超过2维的数组，容易出错，用一维的，好调试，也好使用和理解
	//for(unsigned int i=0; i<4; i++)
	//	for(unsigned int j=0; j<2; j++)
	//		std::cout<<(bb[i][j])<<std::endl;
	
	//float 
	return 0;
}

